package list;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;


//list的主要实现类，线程不安全
//跟数据结构的数组实现一模一样（动态数组）
//查找效率高，增加删除效率低（需要移位）
public class ArrayListDemo {
    public static void main(String[] args) {
//        java.util.ArrayList<Integer> list = new java.util.ArrayList<>();
//        list.add(10);
//        for(int i = 0;i < 10;i++){
//            Random random = new Random();
//            list.add(random.nextInt());
//            System.out.println(list.get(i));
//        }
//        list.set(2,100);
//        list.remove(5);
//        System.out.println(list.size());
//        //排序
//        Collections.sort(list);
//        for (int i : list ) {
//            System.out.println(i);
//        }
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(-1);
        arrayList.add(3);
        arrayList.add(3);
        arrayList.add(-5);
        arrayList.add(7);
        arrayList.add(4);
        arrayList.add(-9);
        arrayList.add(-7);
        System.out.println("原始数组:");
        System.out.println(arrayList);
        Collections.reverse(arrayList);
        System.out.println("Collections.reverse(arrayList):");
        System.out.println(arrayList);
        Collections.sort(arrayList);
        System.out.println("Collections.sort(arrayList)");
        System.out.println(arrayList);
        // 定制排序的用法 从大到小排序
        Collections.sort(arrayList, new Comparator<Integer>() {

            @Override
            public int compare(Integer o1, Integer o2) {
                return o2.compareTo(o1);
            }
        });
        System.out.println("定制排序后：");
        System.out.println(arrayList);

    }
}
